package top.zywork.dao;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * SearchHistoryDAO数据访问接口<br/>
 *
 * 创建于2019-10-18<br/>
 *
 * @author http://zywork.top 王振宇
 * @version 1.0
 */
@Repository
public interface SearchHistoryDAO extends BaseDAO {

    @Override
    List<Object> listAllByCondition(@Param("query") Object queryObj);

    @Override
    List<Object> listPageByCondition(@Param("query") Object queryObj);

    @Override
    Long countByCondition(@Param("query") Object queryObj);

    /**
     * 查询指定用户的搜索关键词，并且指定查询多少个
     * @param userId 用户编号
     * @param total 指定查询个数
     * @return
     */
    List<String> listUserHisKeywordsByCount(@Param("userId") Long userId, @Param("total") Integer total);

    /**
     * 根据关键词计数获取指定个数的热门关键词
     * @param total 获取多少个关键词
     * @return
     */
    List<String> listHotKeywordsByCount(Integer total);

    /**
     * 根据用户编号删除所有搜索历史
     * @param userId
     * @return
     */
    int removeAllByUserId(Long userId);

    /**
     * 根据用户编号和关键词删除搜索记录
     * @param userId
     * @param keyword
     * @return
     */
    int removeByKeyword(Long userId, String keyword);

}
